package com.gewu.bookeeping.View.adapter;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter;

import java.util.ArrayList;
import java.util.List;

/**
 * 主页面的三个标签适配器
 */
public class onePagerAdapter extends FragmentStatePagerAdapter {

    private List<Fragment> fragments = new ArrayList<>();
    private List<String> texts = new ArrayList<>();


    public onePagerAdapter(@NonNull FragmentManager fm) {
        super(fm);
    }

    /**
     * 判断是否包含此字符串 不包含就添加
     *
     * @param tab
     */
    public void addTab(String tab) {
        if (!texts.isEmpty()) {
            if (!texts.contains(tab)) {
                texts.add(tab);
            }
        } else {
            texts.add(tab);
        }
    }

    /**
     * 判断是否包含此Fragment不包含就添加
     *
     * @param tab
     */
    public void addFragemnt(Fragment tab) {
        if (!fragments.isEmpty()) {
            if (!fragments.contains(tab)) {
                fragments.add(tab);
            }
        } else {
            fragments.add(tab);
        }
    }

    /**
     * 判断此fragemnt 集合是否包含 如果包含就删除
     *
     * @param fragment
     * @param s
     */
    public void removdFra(Fragment fragment, String s) {
        if (fragments.isEmpty()&&texts.isEmpty()){
            return;
        }

        if (fragments.contains(fragment)) {
            for (int i = 0; i < fragments.size(); i++) {
                if (fragments.get(i).equals(fragment)) {
                    fragments.remove(i);
                }
            }
        }

        if (texts.contains(s)) {
            for (int i = 0; i < texts.size(); i++) {
                if (texts.get(i).equals(s)) {
                    texts.remove(i);
                }
            }
        }
    }


    @NonNull
    @Override
    public Fragment getItem(int position) {
        return fragments.isEmpty()?null:fragments.get(position);
    }

    @Override
    public int getCount() {
        if (texts.size() == 0) {
            return 0;
        } else {
            return texts.size();
        }
    }

    @Nullable
    @Override
    public CharSequence getPageTitle(int position) {
        return texts.isEmpty()?null:texts.get(position);
    }
}
